<div id="challenge-desc" class="chal-goal blue-border border-box">
    <p>З'єднання вашого локального репозиторія із віддаленим, надсилання данних до нього.</p>
</div>

<div class="chal-background light-blue solid-box">
    <h2>Віддалені репозиторії </h2>

    <p>Коли ви кладете щось на GitHub, його копія існує на одному із серверів GitHub'у. Це робить його
        <strong>віддаленим (remote) </strong> репоиторієм, тому що він знаходиться не локально на вашому комп'ютері, а на сервері. <strong>Надсилаючи (push)</strong> ваші <strong>локальні</strong> (ті що знаходяться на комп'ютері) зміни до віддаленого репозиторія, ви тримаєте його актуальним.</p>

    <p>Інші бажаючі можуть в будь який момент отримати актуальний стан репозиторя <strong>стягнувши (pull)</strong> ваші зміни із
        віддаленого репозиторія (на свій комп'ютер). Саме так, будь-хто, може працювати із вашим проектом не маючи безпосереднього доступу до вашого комп'ютера, та власне вашої локальної копії.</p>

    <img src="../../../assets/imgs/remotes.png"
         alt="Діаграма показує GitHub як центральний сервер що створює GitHub.com сайт. Два комп'ютери, по обидва боки, роблять push та pull з GitHub."
         width="100%">
</div>

<div class="chal-step blue-border border-box">
    <h3>Створення віддаленого репозиторія</h3>
    <p>Ви хочете синхронізувати вашу <strong>локальну</strong> версію із тією, що знаходиться на GitHub.com. Спершу потрібно створити новий <strong>віддалений (remote)</strong>
        репозиторій на GitHub.com.</p>

    <ul>
        <li>Перейдіть на <a href="http://github.com " target="_blank">github.com</a>, авторизуйтесь, та натисніть '+' зверху справа, та оберіть 'New repository'.
        </li>
        <li>Дайте йому таке ж ім'я, як і у вашого локального репозиторія, 'hello-world', та короткий опис.</li>
        <li>Зробіть його публічним. Це означає що його буде видно у списку ваших публічних репозиторіїв.</li>
        <li>Ініціалізуйте його без README тому що ми уже мамо його локально, із назвою 'readme.txt'. Це лише допоміжна опція GitHub, якщо ви ще цього не зробили.
        </li>
        <li>Залиште '.gitignore' та 'license' виставленими у 'none'. У наших завданнях ми їх не використовуватимемо.</li>
        <li>Натисніть на кноку створення репозиторія!</li>
    </ul>
</div>

<div class="chal-background light-blue solid-box">
    <h2>Readme, .gitignore and Ліцензії</h2>
    <p>Це загальні файли для open source проектів, саме тому, для швидкого старту проекту, GitHub надає можливість створити ці файли для вас.</p>
    <p><strong>Readme</strong> описує проект в загальному, як запустити, як контрибютити (інколи це описує спеціальний файл, 'CONTRIBUTING.md').</p>
    <p><strong>.gitignore</strong> це список файлів всередині репозиторія, зміни яких Git <em>не повинен</em> відслідковувати, наприклад,
        наприклад, файли із паролями!</p>
    <p><strong>license</strong> - це файл ліцензії, під якою ви розповсюджуєте проект. Завдяки цьому, інші будуть знати, яким чином вони можуть використовувати ваш проект. Інформація про ліцензії: <a href="http://www.choosealicense.com" target="_blank">choosealicense.com</a>.
    </p>
</div>

<div class="chal-step blue-border border-box">
    <h3>З'єднання локального репозиторія з віддаленим</h3>
    <p>Зараз ви маєте порожній репозиторій, створений на GitHub.com. Зверху ви побачите 'Quick Setup', впевніться що кнопка
        'HTTPS' вибрана та скопіюйте адресу  — це буде адреса вашого репозиторія на сервері GitHub'у.</p>

    <p>Поверніться у ваш термінал, та всередині папки 'hello-world' яку ви ініціалізували як Git репозиторій у попередньому завданні, вам потрібно сказати Git'у щоб він запам'ятав віддалену версію проекту що знаходиться на GitHub'і. Ви
        можете вказати декілька віддалених репозиторії, але кожен із них потребує власного імені. Основний віддалений репозиторій зазвичай називається <code>origin</code>.
    </p>

    <p>Щоб додати віддалений репозиторій 'origin' до вашого репозиторія:</p>
    <code class="shell">git remote add origin &lt;URLFROMGITHUB&gt;</code>

    <p>Ваш <strong>локальний</strong> репозиторій тепер знає де ваш <strong>віддалений (remote)</strong> репозиторій, що називається 'origin',
        і живе на сервері GitHub'у. </p>

    <blockquote>
        <p><strong>Для користувачів Windows:</strong></p>
        <p>Якщо у вас є <strong>GitHub Desktop</strong> встановлений на комп'ютері, віддалений репозиторій із іменем 'origin' автоматично створюється у вашому репозиторії. У цьому випадку, вам лише потрібно вказати із яким URL асоціювати
            'origin'. Використовуйте наступну команду, замість 'add':</p>

        <code class="shell">git remote set-url origin &lt;URLFROMGITHUB&gt;</code>
    </blockquote>
</div>

<div class="chal-step blue-border border-box">
    <h3>Надсилання змін на ваш віддалений репозиторій</h3>
    <p>Далі вам потрібно виконати <strong>надсилання (push)</strong> всього що ви зробили локально, у ваш віддалений репозиторій на GitHub.
        Це те що ви будете робити часто, для того щоб віддалений репозиторій відображав актуальний стан вашого локального репозиторія.</p>

    <p>Git має систему віткування, тобто ви можете працювати над різними частинами проекту у різні моменти часу. Ми розберемо це пізніше, але за замовчуванням, перша вітка називається 'master'. Коли ви надсилаєте (push) зміни (або отримуєте (pull))
        зміни з проекту, ви вказуєте Git'у  <strong>ім'я вітки</strong> в яку зміни будуть записані на <strong>віддалений</strong> репозиторій.</p>

    <p>У цьому випадку, ми надішлемо нашу вітку що називаєтсья 'master' до нашого віддаленого репозиторія на GitHub що збережений як 'origin'. </p>
    <code class="shell">git push origin master</code>

    <p>Тепер перейдіть на GitHub.com на сторінку вашого репозиторія та оновіть сторінку. <strong>Чудово!</strong> Всі зміни із вашого локального репозиторія тепер є і на віддаленому!</p>
</div>

{{{ verify_directory_button }}}

<div class="chal-tip grey-border border-box">
    <ul class="no-list-style">
        <li><strong>Додати віддалене з'єднання</strong></li>
        <code class="shell">git remote add &lt;REMOTENAME&gt; &lt;URL&gt;</code>
        <li><strong>Встановити URL для віддаленого з'єднання</strong></li>
        <code class="shell">git remote set-url &lt;REMOTENAME&gt; &lt;URL&gt;</code>
        <li><strong>Отримати зміни (pull)</strong></li>
        <code class="shell">git pull &lt;REMOTENAME&gt; &lt;BRANCHNAME&gt;</code>
        <li><strong>Переглянути віддалені з'єднання</strong></li>
        <code class="shell">git remote -v</code>
        <li><strong>Надсилання змін (push)</strong></li>
        <code class="shell">git push &lt;REMOTENAME&gt; &lt;BRANCH&gt;</code>
    </ul>
</div>
